#ifndef HUEVO_H
#define	HUEVO_H

#include <string>
#include "Actor.h"
#include "Jugador.h"

using namespace std;
using namespace TP;
using namespace TP::Juego;
using namespace TP::Juego::Arena::Utilidades;

namespace TP { namespace Juego { namespace Arena { namespace Actores {

class Huevo : public Actor {
public:
    Huevo();

    virtual ~Huevo();
    
    Huevo(const string& pNombre);
    
    virtual IColisionado* colisionar (IColisionado* pColisionado);
    
    virtual string aXML();
    
    virtual string aXML(const string& pPath);
    
    virtual void parseXML (const string& pDescriptor);

    virtual TiXmlElement* aElementoXML () = 0;
    
    virtual void deElementoXML (TiXmlElement* pElemento) = 0;    
    
    Jugador* getJugadorMiembro() const;
    
    void setJugadorMiembro(Jugador* jugadorMiembro);
    
    
protected:
    
    virtual Actor* colisionarContraActor(Actor* pActor);   
    virtual Utilidad* colisionarContraUtilidad(Utilidad* pUtilidad);   
    virtual Perimetro* colisionarContraPerimetro (Perimetro* pPerimetro);   
    virtual Piso* colisionarContraPiso (Piso* pPiso);
   
private:  
    Jugador* _jugadorMiembro;  
};
}}}}

#endif	/* HUEVO_H */